package com.tianjin.design.singleton;

import java.util.Iterator;

/**
 *
 * @author tianjin
 *
 * 2023年4月6日
 * TODO
 * 单例模式：
 * 1、此模式保证所有对象只有一个实例；
 * 2、为保证只有一个实例，所以类中声明变量为静态；
 * 3、为保证只有一个实例，所以将构造方法声明为私有类型；
 * 4、类本身提供获取实例的方法，而不能通过new 方式创建。
 */
public class Test {

	public static void main(String[] args) {

		// 测试线程不安全懒汉式
//		for(int i = 0; i< 100; i++) {
//
//			new Thread(new Runnable() {
//
//				@Override
//				public void run() {
//
//					System.out.println(Teacher.newInstance1());
//
//				}
//			}).start();
//		}

		// 测试线程安全懒汉式
		for(int i = 0; i< 200; i++) {

			new Thread(new Runnable() {

				@Override
				public void run() {

//					System.out.println(Teacher.newInstance2());
					System.out.println(Teacher.newInstance3());

				}
			}).start();
		}

	}
}
